home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
pctjoc85.arc
/
SIEVE.F77
< prev
next >
Wrap
Text File
|
1985-03-23
|
1KB
|
45 lines
* prime number sieve program
integer*2 i, niter, count, prime
integer*2 t1 (4), t2 (4)
write (*, ' ('' no. iterations: '' ) ')
read (*, *) niter
call time (t1)
do 30 i = 1, niter
call sieve (count, prime)
30 continue
call etime (t2, t1, niter)
write (*, 40) count, prime
40 format ('0 done', I6, ' primes, largest is ', I6)
end
subroutine sieve (count, largest)
integer*2 count, largest
integer size
parameter (size = 8191)
integer*2 i, prime, k
logical flags (size)
count = 0
do 10 i = 1, size
flags (i) = .true.
10 continue
do 30 i = 1, size
if (flags (i)) then
prime = i + i + 1
do 20 k = i + prime, size, prime
flags (k) = .false.
20 continue
count = count + 1
end if
30 continue
largest = prime
return
end